#ifndef STUDENT_T
#define STUDENT_T
#include <string>
#include "Subject.h"
class StudentImp;

class Student_t {
public:
	Student_t(std::string& name, std::string& faculty);
	virtual ~Student_t();
	Student_t(const Student_t& otherStudent);
	Student_t& operator=(const Student_t& otherStudent);
	const std::string& getName() const;
	const std::string& getFaculty() const;	
	void RegisterToSubject(Subject* Subject, EVENT e);
	void UnregisterFromSubject(EVENT e = EVENT_ALL);
private:
	StudentImp* studentImp;
};

#endif